Moving picture signal coding method, decoding method, coding apparatus, and decoding apparatus

ABSTRACT

Moving picture motion compensation coding/decoding predicts a motion vector in a coding block from a motion vector of the adjacent position and codes a differential motion vector calculated from the motion vector to be coded and its prediction motion vector. The coding is performed by switching the coding accuracy between a coding accuracy of the differential motion vector (1) and a coding accuracy of the prediction motion vector and the coding motion vector (2) for each block. Moreover, when decoding the motion vector from the differential motion vector coded by the aforementioned coding, a reversed processing with respect to the coding is performed.

TECHNICAL FIELD

The present invention relates to moving picture signal coding/decodingmethods, a coding apparatus and a decoding apparatus, particularlyrelates to the coding/decoding technique of a motion vector.

BACKGROUND ART

The outline of moving picture coding/decoding will be described below.Moving picture coding is generally performed in a coding apparatus shownin FIG. 13. One frame of a moving picture to be coded is composed of oneluminance signal (Y signal: 61) and two color difference signals (Crsignal: 62, Cb signal: 63) as shown in FIG. 3, and the picture size ofthe color difference signal is equivalent to ½ of the luminance signalin both length and width. In a general video standard, each frame of amoving picture is divided into small blocks and is reconstructed inunits of block called a macroblock.

The above-mentioned macroblock is composed of one Y signal block 30including 16×16 pixels, a Cr signal block 31 and a Cb signal block 32respectively including 8×8 pixels and respectively spatially coincidentwith one Y signal block as shown in FIG. 5. A picture signal is coded inunits of macroblock. Coding is roughly classified into intracoding (anintramode) and predictive coding (an intermode).

In the coding apparatus shown in FIG. 13, in the case of intracoding, aninput macroblock picture 201 to be coded is divided into DCT codingblocks, DCT is directly applied to a DCT coding block in a DCT device203, and the value is transformed to a DCT coefficients. Eachtransformed coefficient is quantized in a quantizer 204 and is coded ina multiplexer 206.

DCT coding block size is generally (8×8) pixels in a conventional typecoding method, however, recently DCT in 4×4-pixel size is also examinedin MPEG-4 Part 10 (Advanced Video Coding) and others.

As shown in FIG. 6, each macroblock is divided into 24 pieces of4×4-pixel blocks and each 4×4-pixel block is transformed to 16 DCTcoefficients in DCT device 203.

A part of the quantized DCT coefficients is decoded to the inputmacroblock in an inverse quantizer 207 and an inverse DCT device 208respectively in a local decoder 220 and is synthesized in a frame memory210. The local decoder 220 generates the same decoded picture to thatgenerated by a decoder described later. A picture stored in the framememory 210 is used for the prediction of a temporal direction describedlater. The intracoding is applied to a macroblock (also including afirst coding frame) having no similar part in the preceding frame and apart in which the accumulation of operation mismatch in DCT is to besolved.

In the case of interceding (predictive coding), processing for motioncompensation between the input macroblock picture 201 and a decodedpicture (a reference frame) of the coded frame stored in the framememory 210 is executed in a motion compensator 211. The motioncompensation means compression technique in a temporal direction forsearching and deriving the similar part (generally, a part smaller inthe sum of the absolute values of predictive error signals in a block orthe square error sum is selected) to the contents of a target macroblockfrom a reference frame and coding the amount of its motion (a motionvector).

FIG. 4 shows processing for motion compensation. FIG. 4 shows aprediction block 75 and a motion vector 76 on the previous frame 73 (areference frame) of a luminance signal block 72 of the current frame 71enclosed by a thick framework. The motion vector 76 shows the amount ofdisplacement from a block 74 shown by a broken line on the previousframe located in the spatially same position as the block enclosed bythe thick framework of the current frame to the prediction block 75 onthe previous frame (the length of a motion vector for a color differencesignal is equivalent to a half of that of a luminance signal and is notcoded). The detected motion vector is coded in the multiplexer 206 afterdifferential processing between it and a predictive motion vector(predicted based upon a motion vector of the adjacent block) generatedby an MV predictor 215. Differential processing is performed between apredictive macroblock picture 213 extracted from the previous frame bymotion compensation and the input macroblock picture 201 of the currentframe in a differentiator 202 and a differential macroblock picture isgenerated.

The differential macroblock picture is divided into 24 pieces of4×4-pixel blocks as shown in FIG. 6 and each 4×4-pixel block istransformed to 16 DCT coefficients in the DCT device 203. Each DCTcoefficient is quantized in the quantizer 204 and is coded in themultiplexer 206. In the case of intercoding, after these quantized DCTcoefficient are decoded to a differential macroblock picture in theinverse quantizer 207 and the inverse DCT device 208 respectively in thelocal decoder 220 and is added to a predictive macroblock picture in anadder 209, it is also synthesized in the frame memory 210. In this case,the number of motion vectors to be coded in one macroblock is one,however, a method of dividing a macroblock into further small blocks,calculating and coding a motion vector every small block is general. Forexample, MPEG-4 Part 10 (Advanced Video Coding) considers a macroblockdivision type (a luminance component) for motion compensation as shownin FIG. 7. Four types of types 51 to 54 are basic. As for the type 54,five types of types 54 a, 54 b, 54 c, 54 d and intracoding are furtherselected for four pieces of 8×8 blocks 54-0 to 54-3.

Further, a method of the motion compensation of predictive coding isclassified into forward predictive coding in which motion compensationis performed using the information of a temporarily past frame andbi-directional predictive coding in which motion compensation isperformed using temporarily past and future frames. In motioncompensation in the forward predictive coding, only forward predictionis dealt, however, in motion compensation in the bi-directional coding,in addition to forward prediction, backward prediction, bi-directionalprediction and direct prediction in which bi-directional prediction isperformed utilizing motion vector information in a temporarily futureframe are dealt.

As for the coding accuracy of a motion vector, the accuracy of aninteger pixel or a smaller pixel is generally dealt. For example, inAdvanced Simple Profile of MPEG-4 Part 2′, ½-pixel accuracy and ¼-pixelaccuracy can be selected for each bitstream. The description of a methodof calculating a predicted value of the accuracy of an integer pixel ora smaller pixel is omitted, however, in the case of ½-pixel accuracy, a2-tap linear filter is suitably used according to the position of apixel and in the case of ¼-pixel accuracy, an 8-tap filter and a 2-tapfilter are suitably used according to the position of a pixel. In MPEG-4Part 10, it is also examined to represent a motion vector at ¼-pixelaccuracy and a predicted value is calculated using a 6-tap filter andthe 2-tap filter. As described above, predictive performance is enhancedby using the multiple number of taps.

A frame in which intracoding is applied to all macroblocks is calledI-Picture, a frame by forward predictive coding or intracoding is calledP-Picture, and a frame by bi-directional coding or intracoding is calledB-Picture. In P-Picture or B-Picture, it is selected in an INTRA/INTERdecision device 214 shown in FIG. 13 which of predictive coding orintracoding is used for each macroblock and the result of the decision218 is coded in the multiplexer 206.

A coded signal of a moving picture is decoded according to a reverseprocedure to coding. Generally, decoding is performed in a movingpicture decoding apparatus shown in FIG. 14.

In a code decoder 501, input coded data is analyzed, information relatedto a motion vector and macroblock type information are outputed to an MVpredictor 508 and quantized DCT coefficient information is outputed toan inverse quantizer 502. In case a macroblock type is intracoding,inverse quantization and inverse DCT are applied to decoded quantizedDCT coefficient information every 4×4-pixel block in the inversequantizer 502 and the inverse DCT device 503, and a macroblock pictureis reconstructed. In case a predictive mode of a macroblock ispredictive coding, a decoded motion vector is calculated based upon adecoded differential motion vector and a predictive motion vector in theMV predictor 508 and is input to a motion compensator 504. In the motioncompensator 504, a predictive macroblock picture is extracted from aframe memory 507 in which the decoded picture of the previous frame isstored according to the amount of motion.

Next, inverse quantization and inverse DCT are applied to coded datarelated to a predictive error signal every 4×4-pixel block in theinverse quantizer 502 and the inverse DCT device 503, and a differentialmacroblock picture is reconstructed. The predictive macroblock pictureand the differential macroblock picture are added in an adder 505 and amacroblock picture is reconstructed. The reconstructed macroblockpicture is synthesized with a decoded frame picture in a synthesizer506. The decoded frame picture is stored in a frame memory 507 for theprediction of the next frame.

For a document related to the invention, there is Japanese publishedunexamined patent application No. Heill-46364. In this document, inmoving picture coding/decoding methods for executing coding/decodingprocessing in units of block, some types of motion vector precisions areprepared and means for switching motion vector coding accuracy in unitsof plural pieces of bundled blocks is disclosed.

In the motion compensation coding of a moving picture signal heretoforeknown, plural types of motion vectors included in a block are preparedand a coding method in which the coding accuracy of a motion vector ishigh as in the case of ⅛-pixel accuracy is studied. However, there is atendency that a method of coding with the small number of motion vectorsis selected because of the quantity of codes of motion vectors even ifplural motions are included in a block. Besides, in case a predictivepixel is generated at the accuracy of an integer pixel or a smallerpixel using a multiple-tap filter, a problem of memory access that thenumber of pixels in a reference picture used to generate one predictiveblock is increased occurs. This problem comes into question particularlywhen motion compensation is performed.

Therefore, the object of the invention is to provide a coding method ofa moving picture signal, a decoding method, a coding apparatus and adecoding apparatus in which the quantity of codes of motion vectors canbe reduced and motion predictive error information by the increase ofthe number of blocks in a block to be coded can be reduced.

Another object of the invention is to reduce a range of memory access inmotion compensation in the coding apparatus and the decoding apparatus.

DISCLOSURE OF THE INVENTION

To achieve the objects, the invention is based upon a moving picturecoding method including a procedure for dividing a picture into pluralcoding blocks, predicting a motion vector in the coding block based upona motion vector in the adjacent position and coding a differentialmotion vector calculated based upon a motion vector to be coded and itspredictive motion vector in units of block and is characterized in thatthe coding of a motion vector is performed according to (1) a procedurefor preparing some types for the accuracy of a differential motionvector, selecting the accuracy of a differential motion vector everycoding block and coding the information of the selected accuracy and adifferential motion vector of the accuracy or according to (2) aprocedure for preparing some types for the accuracy of a motion vector,selecting the accuracy of a motion vector every coding block and codingthe information of the selected accuracy and a differential motionvector calculated based upon a predictive motion vector revised to theselected accuracy and a motion vector of the selected accuracy.

In the cases of (1) and (2) include a case that the coding of anmv_shift value of a specific macroblock is omitted utilizing a type (forexample, whether the number of coding motion vectors is large or not) ofthe macroblock and a situation of the circumference (for example, asituation of adjacent macroblocks) in addition to the determination ofan accuracy value (hereinafter also called an mv_shift) for the codingof a differential motion vector and coding respectively performed forall macroblocks.

In the case of (2), difference accuracies can be allocated to ahorizontal component and a vertical component of a motion vector and adifferential vector calculated based upon a motion vector of accuracyallocated to each component can be coded.

For the decoding of a moving picture according to the invention, apicture of a coding block is reconstructed according to a reverseprocedure to the procedure of coding using a code by the coding of amoving picture according to the invention. That is, plural accuracies ofa motion vector are prepared and different accuracies are allocated to ahorizontal component and a vertical component of a motion vector. Eachcomponent is revised to the allocated accuracy and a differential motionvector calculated based upon a revised predictive motion vector and amotion vector of the allocated accuracy is coded.

Further, in the case of decoding, an mv_shift value is also setcorresponding to the coding of a code to be decoded. For example, in thereconstruction of the mv_shift value which is not coded because of atype of a macroblock or a situation of the surroundings in coding, themv_shift value is determined based upon a type of a decoded macroblockor a situation of the surroundings.

The objects, the characteristics of the invention and the configurationof a coding apparatus and a decoding apparatus will be further clarifiedby the following description of embodiments referring to the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an example of the data syntax of a forward predictiveframe;

FIG. 2 shows an example of the data syntax of a bi-directionalpredictive frame;

FIG. 3 is an explanatory drawing for explaining the division of amacroblock;

FIG. 4 is an explanatory drawing for explaining a principle of motioncompensation;

FIG. 5 shows block configuration utilized when it is coded whether asignificant DCT coefficient is included in a macroblock or not;

FIG. 6 shows macroblock configuration showing a block unit in which DCTand coding are performed;

FIG. 7 shows the configuration of a luminance block showing a block unitfor motion compensation;

FIG. 8 is an explanatory drawing for explaining the generation of apredictive motion vector;

FIG. 9 shows an example of a code table of motion vector accuracy;

FIG. 10 is an explanatory drawing for explaining a method of predictingmotion vector accuracy;

FIG. 11 shows code tables of macroblock types and 8×8 partition types inP-Picture in an embodiment of the invention;

FIG. 12 shows code tables of macroblock types and 8×8 partition types inB-Picture in the embodiment of the invention;

FIG. 13 is a block diagram showing the general configuration of a movingpicture coding apparatus;

FIG. 14 is a block diagram showing the general configuration of a movingpicture decoding apparatus;

FIG. 15 is an explanatory drawing for explaining an example of a codetable of macroblock types in a conventional method;

FIG. 16 shows an example of the configuration of a universal codingtable;

FIG. 17 shows an example of the configuration of a macroblock havingframe structure in a field signal;

FIG. 18 is a flowchart showing processing for switching the codingaccuracy of a motion vector according to block size;

FIG. 19 is a flowchart showing processing for switching the codingaccuracy of a motion vector according to a component of the motionvector in the embodiment of the invention;

FIG. 20 is a flowchart showing processing for switching the codingaccuracy of a motion vector according to a component of the motionvector and the configuration of a macroblock in the embodiment of theinvention;

FIG. 21 is a flowchart showing processing for switching the codingaccuracy of a motion vector according to block size, a component of themotion vector and the configuration of a macroblock in the embodiment ofthe invention;

FIG. 22 shows another example of the flowchart showing the processingfor switching the coding accuracy of a motion vector according to blocksize, a component of the motion vector and the configuration of amacroblock in the embodiment of the invention;

FIG. 23 shows an example of a flowchart showing processing for switchingthe coding accuracy of a motion vector according to block size and acomponent of the motion vector in the embodiment of the invention;

FIG. 24 shows another example of the flowchart showing the processingfor switching the coding accuracy of a motion vector according to blocksize and a component of the motion vector in the embodiment of theinvention;

FIG. 25 is a block diagram showing an embodiment of an encoder of amotion vector of the moving picture coding apparatus according to theinvention;

FIG. 26 is a block diagram showing an embodiment of a decoder of amotion vector of the moving picture decoding apparatus according to theinvention;

FIG. 27 is a block diagram showing an embodiment of the encoder of amotion vector of the moving picture coding apparatus according to theinvention;

FIG. 28 is a block diagram showing an embodiment of the decoder of amotion vector of the moving picture decoding apparatus according to theinvention;

FIG. 29 is a block diagram showing an embodiment of the encoder of amotion vector of the moving picture coding apparatus according to theinvention;

FIG. 30 is a block diagram showing an embodiment of the decoder of amotion vector of the moving picture decoding apparatus according to theinvention;

FIG. 31 is a block diagram showing an embodiment of the encoder of amotion vector of the moving picture coding apparatus according to theinvention;

FIG. 32 is a block diagram showing an embodiment of the decoder of amotion vector of the moving picture decoding apparatus according to theinvention;

FIG. 33 is a block diagram showing an embodiment of the encoder of amotion vector of the moving picture coding apparatus according to theinvention;

FIG. 34 is a block diagram showing an embodiment of the decoder of amotion vector of the moving picture decoding apparatus according to theinvention;

FIG. 35 is a block diagram showing an embodiment of the encoder of amotion vector of the moving picture coding apparatus according to theinvention;

FIG. 36 is a block diagram showing an embodiment of the decoder of amotion vector of the moving picture decoding apparatus according to theinvention;

FIG. 37 is a block diagram showing an embodiment of the encoder of amotion vector of the moving picture coding apparatus according to theinvention;

FIG. 38 is a block diagram showing an embodiment of the decoder of amotion vector of the moving picture decoding apparatus according to theinvention;

FIG. 39 is a block diagram showing an embodiment of the encoder of amotion vector of the moving picture coding apparatus according to theinvention;

FIG. 40 is a block diagram showing an embodiment of the decoder of amotion vector of the moving picture decoding apparatus according to theinvention;

FIG. 41 is a block diagram showing an embodiment of the encoder of amotion vector of the moving picture coding apparatus according to theinvention;

FIG. 42 is a block diagram showing an embodiment of the decoder of amotion vector of the moving picture decoding apparatus according to theinvention;

FIG. 43 is a block diagram showing an embodiment of the encoder of amotion vector of the moving picture coding apparatus according to theinvention;

FIG. 44 is a block diagram showing an embodiment of the decoder of amotion vector of the moving picture decoding apparatus according to theinvention;

FIG. 45 is a block diagram showing an embodiment of the encoder of amotion vector of the moving picture coding apparatus according to theinvention;

FIG. 46 is a block diagram showing an embodiment of the decoder of amotion vector of the moving picture decoding apparatus according to theinvention;

FIG. 47 is a block diagram showing an embodiment of the encoder of amotion vector of the moving picture coding apparatus according to theinvention; and

FIG. 48 is a block diagram showing an embodiment of the decoder of amotion vector of the moving picture decoding apparatus according to theinvention.

BEST MODE FOR CARRYING OUT THE INVENTION

Before embodiments of the invention are described, to facilitate theunderstanding of the following description, the syntax of coded dataprepared in a multiplexer of a coding apparatus will be described below.

FIG. 1 shows the data syntax of P-Picture and FIG. 2 shows a part (CBP15 or the succeeding are omitted because they are the same as those inFIG. 1) of B-Picture data syntax. In this case, data (motion vectorprecision information) 13 shall not appear in data syntax. Besides, thedescription of I-picture is omitted because the I-picture is notincluded in the characteristics of the invention.

A picture header 10 includes data related to the display informationsuch as picture size and displaying time of a frame. A picture type 11is frame type information and a type such as I-Picture, P-Picture andB-Picture is coded here. MB type 12 to Tcoeff chroma 17 are equivalentto macroblock data and are repeated by the number of macroblocks in aframe. In the MB type 12, one mode is selected and coded for eachmacroblock out of macroblock modes shown in a table (P-Picture) 95 or atable (B-Picture) 96 shown in FIG. 15.

In SKIP mode, a macroblock picture in the spatially same position isextracted from a decoded picture of the previous frame and is copied. “Mand N” in “IntraM×N” in the tables denote small block size when spatialprediction is performed. “M×N” denotes a small block unit when motioncompensation is performed and corresponds to modes 1 to 4 shown in FIG.7.

“Direct” means direct prediction. Block 1 and Block 2 identify two smallblocks in the mode 2 or the mode 3 shown in FIG. 7 and show which apredicted direction of each small block is out of forward (forwardprediction), backward (backward prediction) and bi-directional(bi-directional prediction). As for a macroblock for which “8×8(split)”is selected in the MB type 12, 8×8 partition 18 is generated. In amacroblock mode except the modes, no “8×8 partition” 18 is generated. Inthe 8×8 partition 18, one mode is selected for each 8×8 partition out of8×8 partition modes shown in a table (P-Picture) 92 shown in FIG. 11 ora table (B-Picture) 94 shown in FIG. 12 and is coded. “Intra” in thetables denotes spatial prediction. “M×N” denotes a small block unit whenmotion compensation is performed and corresponds to partitions 1 to 4shown in FIG. 7. “Direct” denotes direct prediction.

“Prediction” denotes which a predicted direction of each small block isout of forward (forward prediction), backward (backward prediction) andbi-directional (bi-directional prediction). MVD 14 denotes the codeddata of a differential motion vector in P-Picture. Therefore, in casethe MB type 12 is “IntraM×N”, the above-mentioned data is not generated.In case the MB type 12 is “M×N”, MVD 14 is repeatedly coded by thenumber of vectors shown in the MB type and the 8×8 partition. Forexample, as the number of differential motion vectors to be coded is twoand each motion vector is composed of horizontal and vertical twocomponents in the case of “16×8”, four MVDs are continuously coded.MVDFW23 and MVDBW24 denote the coded data of a differential motionvector in B-Picture. MVDFW 23 is generated in the case of a macroblockincluding a motion vector according to forward prediction (alsoincluding bi-directional prediction) which the MB type 12 and the 8×8partition 18 show. Similarly, MVDBW 24 is generated in the case of amacroblock including a motion vector according to backward prediction(also including bi-directional prediction) which the MB type 12 and the8×8 partition 18 show. Therefore, in case the MB type 12 is IntraM×N orDirect, the above-mentioned data is not generated. In case the MB type12 is M×N and motion vectors for forward prediction (also includingbi-directional prediction) exists, MVDFW 23 is repeatedly coded by thenumber of vectors (the number of differential motion vectors×2,horizontal and vertical components) related to forward prediction (alsoincluding bi-directional prediction) which the MB type and the 8×8partition show. Similarly, in case the MB type 12 is M×N and motionvector(s) for backward prediction (also including bi-directionalprediction) exists, MVDBW 24 is repeated coded by the number of vectors(the number of differential motion vectors×2, horizontal and verticalcomponents) related to backward prediction (also includingbi-directional prediction) which the MB type and the 8×8 partition show.

CBP 15 is coded data showing whether quantized DCT coefficients except 0(significant coefficients) are included in 16 quantized DTC coefficientsor not for 24 pieces of DCT blocks shown in FIG. 6. However, asadditional information is increased when the information of whether asignificant coefficient exists or not is coded for 24 pieces of DCTblocks, it shall be coded whether a significant coefficient exists ornot in units of 8×8 block in which 4 pieces of DCT blocks are united asshown in FIG. 6.

Tcoeff luma 16 shows the coded data of a quantized DCT coefficient in aluminance block 40. For coding, 16 quantized coefficients are coded inorder smaller in a number from a 4×4 block 40-0 to a 4×4 block 40-15.However, as for an 8×8 block in relation to which it is shown in CBPthat no significant coefficient exists, coding processing is omitted.

Tcoeff chroma 17 shows the coding data of a quantized DCT coefficient inthe luminance block 40. For coding, sixteen pieces of quantizedcoefficients are coded in the order of 4×4 blocks 41-0, 41-2, 41-3,41-4, 42-0, 42-1, 42-3, 42-4. However, for a signal component inrelation to which it is shown in CBP 15 that no significant coefficientexists, coding processing is omitted.

For a method of coding data coded at a level of a macroblock shown inFIGS. 1 and 2, universal VLC (UVLC) using only one type of variablelength code table, a coding method acquired by combining fixed lengthcoding and variable length coding (different code tables are preparedfor coded elements) and arithmetic coding (for example, refer to thenon-patent document 1) are conceivable. A diagram 83 in FIG. 16 showsthe configuration of UVLC and a value of Xn is ‘0’ or ‘1’. A table 84shows an example of an actual variable length code table. For a concretemethod of the arithmetic coding, a method of converting the meaning ofeach code to a binary data and coding each bit according to anoccurrence probability model showing the probability of the occurrenceof 0 and 1 is conceivable. This method is called context-based adaptivebinary arithmetic coding (CABAC) (written et al., “Arithmetic Coding forData Compression”, Comm. of the ACM, 30(6), 1987, pp. 520 to 541).

The invention is particularly characterized in an encoder/a decoder of amotion vector. That is, the invention is characterized in processing inMVD precision 13 in data MVD syntax shown in FIGS. 1 and 2, eachconfiguration of an MV predictor 215 and a motion compensator 211 of thecoding apparatus shown in FIG. 13, each configuration of an MV predictor508 and a motion compensator 504 of a decoding apparatus shown in FIG.14 and a signal processing method. The configuration of the other partand a signal processing method are substantially the same as those ofthe conventional type apparatuses and the methods, and embodiments ofthe characteristic of the invention will be described below.

First Embodiment

The coding of a motion vector equivalent to this embodiment is a methodof preparing the some-types accuracy of a differential motion vector,selecting the accuracy of a differential motion vector for each decodingblock and coding the information of the selected accuracy and thedifferential motion vector of the accuracy in moving picture coding(hereinafter called the motion compensation coding of a moving picture)for dividing a picture into plural coding blocks, predicting a picturesignal of the coding block and a motion vector in the coding block basedupon a motion vector in the adjacent position and coding a differentialmotion vector calculated based upon a motion vector to be coded and itspredictive motion vector in units of block.

First, referring to FIG. 8, the generation of the above-mentionedpredictive motion vector will be described. In this case, a referencenumber 50 denotes a small block which is a target for coding a motionvector. In the small block 50, for respective horizontal and verticalcomponents of a motion vector, the medium value of motion vectors as acandidate of three blocks located in the adjacent positions A, B, C iscalculated and a motion vector of the medium value is regarded as apredictive motion vector. However, in case the block in the position Cis not coded yet because of coding order and the position in amacroblock and in case the block in the position C is located outsidethe picture, a motion vector of a block located in a position D is usedas one of candidate motion vectors in place of the position C. In casethe blocks in the positions A, B, C, D have no motion vector, predictiveprocessing is executed with the motion vector regarded as ‘0’ vector. Atthis time, in case two of the three candidate blocks have no motionvector, the remaining one candidate motion vector is regarded as apredictive motion vector. As for a block 51-0 in Mode 1 (51) shown inFIG. 7 and small blocks 54 a-0, 54 b-0, 54 b-1, 54 c-0, 54 c-2 and 54d-0 to 54 d-3 in Mode 4 (54), the same predictive method is used.

As for two small blocks (52-0, 52-1) in Mode 2 (52) and two small blocks(53-0, 53-1) in Mode 3 (53), a motion vector of a block located at thebase of an arrow shown in FIG. 8 is regarded as a predictive value. Inany mode, a motion vector for a color difference component is not codedand a motion vector for a luminance component is used by dividing it intwo and others.

In the first embodiment, first, three types of ¼-pixel accuracy, ½-pixelaccuracy and 1-pixel accuracy are prepared as a candidate for theaccuracy of a differential motion vector. If MV denotes a valuecalculated by quadrupling a motion vector component represented at¼-pixel accuracy and PMV denotes a value calculated by quadrupling apredictive motion vector component represented at ¼-pixel accuracy, thevalue of MV for each accuracy candidate is limited as follows.

1-pixel accuracy: MV that values of (MV-PMV) in all small blocks in amacroblock are equivalent to a multiple of 4 for both horizontal andvertical components

½-pixel accuracy: MV that values of (MV-PMV) in all small blocks in amacroblock are equivalent to a multiple of 2 for both horizontal andvertical components

¼-pixel accuracy: MV that values of (MV-PMV) in all small blocks in amacroblock are equivalent to a multiple of 1 for both horizontal andvertical components

Therefore, to make the effect of this method reflected in a codingcharacteristic, a performance evaluation function calculated by addingthe effect of the code quantity of a motion vector to the absolute valuesum or the square error sum of a predictive error signal is prepared inestimating a motion vector. At this time, accuracy smaller in the totalof estimate values is determined as the accuracy of a differentialmotion vector by calculating an added value of an estimate value of asmall block for each accuracy after the optimum estimate value of eachsmall block is calculated for each accuracy (MV-PMV) and the motionvector estimation processing of all small blocks in a macroblock isperformed. A coded differential motion vector MVD is calculated in thefollowing expression (1).MVD=(MV−PMV)>>mv_shift  (1)

“mv_shift” in the expression (1) is a value shown in a table 81 shown inFIG. 9. The expression (1) shows that a value calculated byarithmetically shifting a value calculated by subtracting a predictivemotion vector component PMV from a motion vector component MV rightwardby a number shown in mv_shift is a differential motion vector componentMVD. In this case, a value calculated by subtracting the predictivemotion vector component PMV from the motion vector component MV is amultiple of 1<<mv_shift and the differential motion vector component MVDto which an arithmetic right bit shift is applied is a multiple of 1.

In case a picture type is P-Picture, coding is performed, regardingmv_shift as a coded data element shown in the data MVD precision 13shown in FIG. 1 and regarding MVD as a coded element shown in the dataMVD 14. In case a picture type is B-Picture, coding is performed,regarding mv_shift as a coded data element shown in the data MVDprecision 13 shown in FIG. 2 and regarding MVD as a coded data elementshown in the data MVDFW 23 (in case MVD is a differential motion vectorof forward prediction) or in the data MVDBW24 (in case MVD is adifferential motion vector of backward prediction). The coding of MVDprecision is omitted in a macroblock in which no coded data (MVD 14 orMVDFW 23 and MVDBW 24) of a differential motion vector is generated.Concretely, in case P-Picture: MB type is IntraM×N or MB type is8×8(split) and the 8×8 partition of four small blocks are all intra, incase B-Picture: MB type is IntraM×N or Direct and further in case MBtype is 8×8(split) and the 8×8 partition of four small blocks are allintra or direct, the coding of MVD precision is omitted.

As described in relation to the conventional type, for a coding method,UVLC or arithmetic coding is adopted. In the table 81 shown in FIG. 9,examples of coding codes in case UVLC is used are shown. In the case ofarithmetic coding, a generated value of a predictive motion vector ofcoding MB (7C shown in FIG. 10) for example is coded according to ageneration probability table calculated based upon the mv_shift valuesof just left MB (7A shown in FIG. 10) and just upper MB (7B shown inFIG. 10).

In the decoding apparatus, each motion vector component is decoded, thatis, an MV value is regenerated (decoded) according to the followingexpression (2) based upon a decoded mv_shift value, decoded MVD and PMV.MV=(MVD<<mv_shift)+PMV  (2)The expression (2) shows that a value calculated by adding a predictivemotion vector component PMV to a value calculated by arithmeticallyshifting a differential motion vector component MVD leftward by a numbershown in mv_shift is a decoded motion vector component MV. The decodeddifferential motion vector component MVD varies from a multiple of 1 toa multiple (corresponding to MV-PMV in the coding apparatus) of1<<mv_shift by the arithmetic left bit shift process. The decoded motionvector component MV is regenerated to a value of original accuracy byadding PMV to this value.

Next, a case that a candidate of the accuracy of a differential motionvector is four types of ⅛-pixel accuracy, ¼-pixel accuracy, ½-pixelaccuracy and 1-pixel accuracy will be described. If MV has a valuecalculated by octupling a motion vector component represented at ⅛-pixelaccuracy and PMV has a value calculated by octupling a predictive motionvector component represented at ⅛-pixel accuracy, a value of MV for eachaccuracy candidate is limited by the representation as follows.

1-pixel accuracy: MV that values of (MV-PMV) in all small blocks in amacroblock are equivalent to a multiple of 8 for both horizontal andvertical components

½-pixel accuracy: MV that values of (MV-PMV) in all small blocks in amacroblock are equivalent to a multiple of 4 for both horizontal andvertical components

¼-pixel accuracy: MV that values of (MV-PMV) in all small blocks in amacroblock are equivalent to a multiple of 2 for both horizontal andvertical components

⅛-pixel accuracy: MV that values of (MV-PMV) in all small blocks in amacroblock are equivalent to a multiple of 1 for both horizontal andvertical components

As its method of estimating motion is the same as that in the case ofthree types of ¼-pixel accuracy, ½-pixel accuracy and 1-pixel accuracy,the description is omitted. A differential motion vector MVD iscalculated in the expression (1). In this case, a value calculated bysubtracting a predictive motion vector component PMV from a motionvector component MV is a multiple of 1<<mv_shift, a differential motionvector component MVD to which the arithmetic right bit shift process isapplied is a multiple of 1 and they are calculated in theabove-mentioned expression (1). “mv_shift” in the expression (1) is avalue shown in a table 82 in FIG. 9.

As a method of coding mv_shift and MVD is the same as that in case acandidate of the accuracy of a differential motion vector is three typesof ¼-pixel accuracy, ½-pixel accuracy and 1-pixel accuracy, thedescription is omitted, however, a coding code in case UVLC is usedshall comply with not the table 81 but the table 82.

For processing in the decoding apparatus, a candidate of the accuracy ofa differential motion vector is also the same as that in the case ofthree types of ¼-pixel accuracy, ½-pixel accuracy and 1-pixel accuracy,and a decoded MV value of each motion vector component is regeneratedbased upon a decoded mv_shift value, decoded MVD and PMV according tothe above-mentioned expression (2). The expression (2) shows that avalue calculated by adding a predictive motion vector component PMV to avalue calculated by arithmetically shifting a differential motion vectorcomponent MVD leftward by a number shown in mv_shift is a decoded motionvector component MV. A decoded differential motion vector component MVDvaries from a multiple of 1 to a multiple (corresponding to MV-PMV inthe coding apparatus) of 1<<mv_shift by the arithmetic left bit shiftprocess. The decoded motion vector component MV is regenerated to avalue of original accuracy by adding PMV to this value.

Second Embodiment

A second embodiment is related to a method of preparing plural-typesaccuracy of a motion vector, selecting the accuracy of a motion vectorfor each macroblock and coding the information of the selected accuracyand a differential motion vector calculated based upon a predictivemotion vector the accuracy of which is revised to the selected accuracyand a motion vector to be coded the accuracy of which is revised to theselected accuracy in the motion compensation coding of a moving picture.

First, for candidates of the accuracy of a predictive motion vector anda motion vector to be coded, three types of ¼-pixel accuracy, ½-pixelaccuracy and 1-pixel accuracy are prepared. If MV has a value calculatedby quadrupling a motion vector component represented at ¼-pixel accuracyand PMV has a value calculated by quadrupling a predictive motion vectorcomponent represented at ¼-pixel accuracy, a value of MV for eachaccuracy candidate is limited by the representation as follows.

1-pixel accuracy: MV the values of which in all small blocks in amacroblock are equivalent to a multiple of 4 for both horizontal andvertical components

½-pixel accuracy: MV the values of which in all small blocks in amacroblock are equivalent to a multiple of, 2 for both horizontal andvertical components

¼-pixel accuracy: MV the values of which in all small blocks in amacroblock are equivalent to a multiple of 1 for both horizontal andvertical components

Therefore, to make the effect of this method reflected in a codingcharacteristic, a performance evaluation function calculated by addingthe effect of the quantity of codes of a motion vector to the absolutevalue sum or the square error sum of a predictive error signal isprepared in estimating a motion vector. At this time, accuracy smallerin the total of estimate values can be determined as the accuracy of adifferential motion vector by calculating an added value of an estimatevalue of a small block for each accuracy after the optimum estimatevalue of each small block is calculated for each accuracy of MV and themotion vector estimation process of all small blocks in a macroblock isperformed. A differential motion vector MVD to be coded is calculated inthe following expression.MVD=(MV−((PMV>>mv_shift)<<mv_shift))>>mv_shift  (3)The expression (3) shows that a value calculated by further applying asecond arithmetic right bit shift by a number shown in mv_shift to avalue calculated by subtracting a value calculated by arithmeticallyshifting a predictive motion vector component PMV leftward immediatelyafter arithmetically shifting the predictive motion vector component PMVrightward by a number shown in mv_shift from a motion vector componentMV is equivalent to a differential motion vector component MVD. In thiscase, the continuous right bit shift process and left bit shift processrespectively applied to a predictive motion vector component fulfill therole of converting a value of the predictive motion vector component PMVto the value of a multiple of 1<<mv_shift such as MV. A differentialmotion vector component MVD becomes a multiple of 1 by a secondarithmetic right bit shift process.

As described above, in a method of switching the accuracy of a motionvector to be coded, the accuracy of PMV is not required to be consideredin the process of motion estimation, however, in an MVD generationprocess, processing for lowering the accuracy of a PMV predictive motionvector to the accuracy of mv_shift is required to be executed. However,the number of operation steps can be reduced by simplifying theexpression (3) as follows. It is effective in integrating such ascircuit design. In this method, after a motion vector component MV and apredictive motion vector component PMV are converted to a value of amultiple of 1, differential processing is executed. A value calculatedby multiplying a predictive vector component converted to a multiple of1 and “1<<mv_shift” is same as a predictive motion vector componentconverted to a value of “1<<mv_shift” in the above-mentioned expression,and as a motion vector component MV is a multiple of “1<<mv_shift”, nolack of information is caused by using the following expression.MVD=(MV>>mv_shift)−(PMV>>mv_shift)  (4)

As the allocation of mv_shift and MVD to the data syntax shown in FIGS.1 and 2 and a coding method are the same as the method of switching theaccuracy of a differential motion vector, the description is omitted.

In the decoding apparatus, a decoded MV value of each motion vectorcomponent is regenerated based upon a decoded mv_shift value, decodedMVD and decoded PMV according to the following expression.MV=(MVD<<mv_shift)+((PMV>>mv_shift)<<mv_shift)  (5)This expression (5) shows that a value acquired by adding a valuecalculated by arithmetically shifting a predictive motion vectorcomponent PMV leftward immediately after the predictive motion vectorcomponent PMV is arithmetically shifted rightward by a number shown inmv_shift to a value calculated by arithmetically shifting a differentialmotion vector component MVD leftward by the number shown in mv_shift isa decoded motion vector component MV. In this case, the continuous rightbit shift process and left bit shift process respectively for apredictive motion vector component and processing for shifting MVDleftward by a number shown in a differential motion vector componentmv_shift fulfill the role of converting each component to a value of amultiple “1<<mv_shift”. Therefore, a decoded motion vector component MVbecomes a multiple of original 1<<mv_shift. The number of operationsteps can be reduced by simplifying the expression (5) as follows. It iseffective in integrating such as circuit design. The expression (5)shows that a value calculated by applying a left arithmetic bit shift toa value calculated by adding a decoded differential motion vector DMV toa predictive motion vector component PMV converted to a value of amultiple of 1 by a number shown in mv_shift is a decoded motion vectorcomponent MV. A value calculated by multiplying a predictive vectorcomponent converted to a multiple of 1 and “1<<mv_shift” is same as apredictive motion vector component converted to a multiple of“1<<mv_shift” in the above-mentioned expression and as a differentialmotion vector component DMV is a multiple of 1, no lack of informationis caused by using the following expression (6).MV=(MVD+(PMV>>mv_shift))<<mv_shift  (6)Next, a case that for a candidate of the accuracy of a differentialmotion vector, four types of ⅛-pixel accuracy, ¼-pixel accuracy, ½-pixelaccuracy and 1-pixel accuracy are prepared will be described. If MV hasa value calculated by octupling a motion vector component represented at⅛-pixel accuracy and PMV has a value calculated by octupling apredictive motion vector component represented at ⅛-pixel accuracy, avalue of MV for each accuracy candidate is limited by thisrepresentation as follows.1-pixel accuracy: MV the values of which in all small blocks in amacroblock are equivalent to a multiple of 8 for both horizontal andvertical components½-pixel accuracy: MV the values of which in all small blocks in amacroblock are equivalent to a multiple of 4 for both horizontal andvertical components¼-pixel accuracy: MV the values of which in all small blocks in amacroblock are equivalent to a multiple of 2 for both horizontal andvertical components⅛-pixel accuracy: MV the values of which in all small blocks in amacroblock are equivalent to a multiple of 1 for both horizontal andvertical componentsAs a method of estimating motion is the same as that in the case ofthree types of ¼-pixel accuracy, ½-pixel accuracy and 1-pixel accuracy,the description is omitted. A differential motion vector MVD to be codedis calculated in the following expression.MVD=(MV−((PMV>>mv_shift)<<mv_shift))>>mv_shift  (3)“mv_shift” in the expression is a value shown in the table 82 in FIG. 9.This expression shows that a value calculated by further applying asecond arithmetic right bit shift by a number shown in mv_shift to avalue calculated by subtracting a value calculated by arithmeticallyshifting a predictive motion vector component PMV leftward immediatelyafter the predictive motion vector component PMV is arithmeticallyshifted rightward by the number shown in mv_shift from a motion vectorcomponent MV is equivalent to a differential motion vector componentMVD. In this case, the continuous right bit shift process and left bitshift process for a predictive motion vector component fulfill the roleof converting a value of the predictive motion vector component PMV tothe value of a multiple of 1<<mv_shift such as MV.

Besides, a differential motion vector component MVD becomes a value of amultiple of 1 by the second arithmetic right bit shift process.

As a method of coding mv_shift and MVD is the same as that in case acandidate of the accuracy of a differential motion vector is three typesof ¼-pixel accuracy, ½-pixel accuracy and 1-pixel accuracy, thedescription is omitted, however, a coding code in case UVLC is usedshall comply with not the table 81 but the table 82. However, the numberof operation steps can be reduced by simplifying the above-mentionedexpression as follows. It is effective in integrating such as circuitdesign. In this expression, after a motion vector component MV and apredictive motion vector component PMV are converted to values of amultiple of 1, differential processing is executed. As a valuecalculated by multiplying a predictive vector component converted to amultiple of 1 and “1<<mv_shift” is same as the predictive motion vectorcomponent converted to a multiple of 1<<mv_shift in the above-mentionedexpression and a motion vector component MV is a multiple of1<<mv_shift, no lack of information by using the following expression iscaused.MVD=(MV>>mv_shift)−(PMV>>mv_shift)  (4)Processing in the decoding apparatus is also the same as that in case acandidate of the accuracy of a differential motion vector is three typesof ¼-pixel accuracy, ½-pixel accuracy and 1-pixel accuracy, and adecoded MV value of each motion vector component is regenerated basedupon a decoded mv_shift value, decoded MVD and PMV according to thefollowing expression.MV=(MVD<<mv_shift)+((PMV>>mv_shift)<<mv_shift)  (5)This expression shows that a value calculated by adding a valuecalculated by arithmetically shifting a predictive motion vectorcomponent PMV leftward immediately after the predictive motion vectorcomponent PMV is arithmetically shifted rightward by a number shown inmv_shift to a value calculated by arithmetically shifting a differentialmotion vector component MVD leftward by the number shown in mv_shift isa decoded motion vector component MV. In this case, the continuous rightbit shift process and left bit shift process for the predictive motionvector component and the processing for arithmetically shifting MVDleftward by the number shown in the differential motion vector componentmv_shift fulfill the role of converting each component to a value of amultiple of 1<<mv_shift. Therefore, the decoded vector component MVbecomes a multiple of original 1<<mv_shift. The number of operationsteps can be reduced by simplifying this expression as follows. It iseffective in integrating such as circuit design. This expression showsthat a value calculated by applying a left arithmetic bit shift to avalue calculated by adding a decoded differential motion vector DMV to apredictive motion vector component PMV converted to a value of amultiple of 1 by a number shown in mv_shift is a decoded motion vectorcomponent MV. The value acquired by making the predictive vectorcomponent converted to a multiple of 1 “mv_shift”-fold is similar to thepredictive motion vector component converted to a multiple of mv_shiftin the above-mentioned expression and as the differential motion vectorcomponent DMV is a multiple of 1, no lack of information by using thefollowing expression is caused.MV=(MVD+(PMV>>mv_shift))<<mv_shift  (6)

To compare the above-mentioned first and second embodiments, as in thefirst embodiment, the accuracy of an actually coded differential motionvector is adjusted, operation is simpler in the first embodiment,compared with that in the second embodiment. In the meantime, as in thesecond embodiment, the accuracy of a motion vector to be coded isadjusted, a search pixel in case each accuracy is supposed does notdepend upon a predictive vector. Therefore, in case only codingperformance is pursued, the first embodiment is effective, however, in amemory access reduction method described later, the second embodiment iseffective.

Third Embodiment

A third embodiment is related to a coding method and a decoding methodof determining beforehand according to a block mode without possiblyperforming the coding of an mv_shift value, and is related to a methodof preventing the increase of the quantity of codes of the mv_shiftvalue in a region in which the selectivity of a macroblock is high. Thatis, in a mode in which the number of motion vectors in a macroblock issmall, processing for coding and decoding a differential motion vectorat default motion vector accuracy defined beforehand is executed.Processing for coding and decoding motion vector accuracy information isomitted by this processing.

For example, in a macroblock the MB type of which is 16×16, a codingapparatus and a decoding apparatus are set so that coding and decodingare performed at ¼-pixel accuracy or ⅛-pixel accuracy, and in amacroblock in these modes, processing for coding and decoding accuracyinformation is omitted. In this case, only the macroblock the MB type ofwhich is 16×16 is set as a mode in which the processing for coding anddecoding accuracy information is omitted, however, the object can befurther extended. For example, it is also effective to set the codingapparatus and the decoding apparatus so that processing for coding anddecoding macroblocks the MB type of which is 16×16, 16×8, 8×16 at¼-pixel accuracy or ⅛-pixel accuracy is performed. In P-Picture, onlythe macroblock the MB type of which is 16×16 is set as a mode in whichthe processing for coding and decoding accuracy information is omittedand the number of motion vectors to be coded is large. In B-Picture, themacroblocks the MB type of which is 16×16, 16×8, 8×16 can be set as themode in which the processing for coding and decoding accuracyinformation is omitted.

The default value of the motion vector accuracy can be set in a range of0-3(0-2 in the case of a ¼ MC type) like an mv_shift value and isswitched in units of bit stream or in units of frame. At this time, acode of the default value shall be included in a header at the beginningof data in the case of a bit stream unit and picture header data in thecase of a frame unit. In the case of the bit stream unit, if only thecode is provided beforehand in the coding apparatus and the decodingapparatus, it is not required to be included in coded data.

Further, additional information accompanied by the coding of an mv_shiftvalue can be reduced by preparing a macroblock type in which a value ofmv_shift shown in a table 91 shown in FIG. 11 and a table 93 shown inFIG. 12 in place of the table 95 and the table 96 shown in FIG. 15 isdefined. Furthermore coding efficiency can be enhanced by suitablyswitching a probability model used for coding based upon the number ofmotion vectors included in a macroblock when an mv_shift value isarithmetically coded. In this case, a switching unit of mv_shift is setto a macroblock unit, however, the switching unit may be also every 8×8.Such processing can be realized by providing a mode in which processingis executed every 8×8 and a mode in which processing is executed every16×16 to MB_type. Such processing can be also realized by a method ofproviding a mode in which switching is performed for each 8×8 to thetable 81 or the table 82 and coding further four pieces of mv_shiftvalues every 8×8.

Furthermore, the selection of the accuracy of a differential motionvector or a motion vector may be also fixed in the whole frame and maybe also fixed in the whole sequence. It means the simplification ofcoding/decoding processes that the selection of the accuracy is fixed.Therefore, in simple coding/decoding methods in which a integrating costis considered, it is effective to fix the switching of the accuracy inunits of frame and in units of sequence.

Fourth Embodiment

A fourth embodiment is related to a method of uniquely determining ashift value based upon a situation of the surroundings. That is, thequantity of codes of an mv_shift value is reduced by predicting themv_shift value of a macroblock to be coded based upon the adjacentmacroblock. For example, an mv_shift value of a macroblock to be coded(the macroblock 7 c shown in FIG. 10) is predicted based upon therespective mv_shift values of the just left macroblock (7A) and the justupper macroblock (7B). For a predicting method, there is a method ofpredicting based upon added values of the mv_shift values of 7A and 7B.For concretely utilized means, there is control means for omitting thecoding of an mv_shift value (MVD precision) and using ⅛-pixel accuracyor ¼-pixel accuracy as a defined value in both the coding and decodingapparatuses in case the added value is 0 and the MB type of 7 c is 16×16and coding the mv_shift value in case the added value is not 0 or MBtype is not 16×16. The concrete example is one example and there aremultiple types of combination such as the type of the adjacentmacroblock used for prediction, a method of predicting, an MB type to becontrolled and assortment in control. For example, the quantity of codesof an mv_shift value can be reduced by extending an MB type to becontrolled up to two or less differential motion vectors and extending acontrol point of an added value up to two or less. There is a method ofpredicting an mv_shift value of current MB based upon the mv_shift valueof the adjacent MB in such a method as the prediction of a motion vectorand coding a differential value.

The following variations are also included in the means for switchingthe coding accuracy of a motion vector in the above-mentionedembodiments.

In this embodiment, candidates of the coding accuracy of a motion vectorare ⅛-pixel accuracy, ¼-pixel accuracy, ½-pixel accuracy and 1-pixelaccuracy, however, a candidate is not limited to these. For example,there are a case that 1/16-pixel accuracy is included and a case thattwo types of ½-pixel accuracy and 1-pixel accuracy are prepared.

In the above-mentioned embodiments, the coding of coding accuracyinformation of a motion vector is performed in units of macroblock,however, the coding accuracy information of a motion vector may be alsoswitched every plural macroblock groups.

Further, in the above-mentioned embodiments, four types shown in FIG. 7are prepared for a mode in which motion compensation blocks in amacroblock are divided, however, as the motion vector coding method inthis specification can be executed even if the type and the number ofmodes in which motion compensation blocks are divided are changed,motion vector coding block configuration is not limited.

Besides, in the above-mentioned embodiments, the motion vector codingmethod in this specification in which for a method of coding codingdata, UVLC and arithmetic coding are described can be executed withoutbeing limited to the type of entropy coding. Besides, the configurationof a code table of UVLC and a method of arithmetic coding/decoding arealso not limited to the tables in the embodiments.

Furthermore, in this embodiment, the respective default values of anmv_shift value in the modes of 16×16, 16×8 and 8×16 are utilized,however, the default values can be applied to a partition mode of a partof 8×8(split). Besides, in this embodiment, the default value is set inunits of bit stream or in units of frame, however, different values maybe also allocated to each macroblock unit. For example, there is amethod of setting the default value to 1 in the 16×16 mode and settingthe default value to 0 in the 16×8 and 8×16 modes. Generally speaking,in the macroblock mode and the 8×8 partition mode, the coding accuracyof an applied differential motion vector (or an applied motion vector)has only to be defined in units of frame or in units of sequence, to becoded and to be transmitted (in the case of the sequence unit, if onlycoding accuracy in each mode is determined in the coding apparatus andin the decoding apparatus beforehand, the coding of accuracy informationis not required). As described above, it means simplifyingcoding/decoding processing to fix a unit of switching the selection ofcoding accuracy. The integrations cost is further reduced by increasingmodes in which the default value is defined. In a coding/decoding methodrequiring simpler configuration, it is effective to fix a unit ofswitching coding accuracy to more modes.

The embodiments of the coding method and the decoding method of a movingpicture according to the invention have been described. As for thecoding apparatus shown in FIG. 13 in the embodiments out of the movingpicture coding apparatus and the moving picture decoding apparatusaccording to the invention, first, a determination process for turningon/off the coding of an mv_shift value according to the combination ofan MB type and 8×8 partition, a motion estimation process inconsideration of the mv_shift value, a process for calculating MVD,MVDFW, MVDBW respectively including mv_shift and a process fortransmitting the mv_shift value to the multiplexer 206 are added to themotion compensator 211. Besides, a process for coding the mv_shift valueas MVD precision is added to the multiplexer 206. As for the decodingapparatus shown in FIG. 14, a process for applying a determinationprocess for turning on/off the decoding of an mv_shift value accordingto decoded values of an MB type and 8×8 partition, a process fordecoding MVD precision as an mv_shift value and a process fortransmitting the mv_shift value to the MV predictor 508 are added to thecode decoder 501. Besides, a process for regenerating MVD, MVDFW, MVDBWrespectively including mv_shift to MV is added to the MV predictor 508.

FIGS. 25, 27, 29, 31, 33, 35, 37, 39 and 41 are block diagrams showingthe configuration of each main part (each encoder of a motion vector)equivalent to embodiments of the moving picture coding apparatusaccording to the invention. FIGS. 26, 28, 30, 32, 34, 36, 38, 40 and 42are block diagrams showing the configuration of each main part (eachdecoder of a motion vector) equivalent to embodiments of the movingpicture decoding apparatus according to the invention corresponding tothe coding apparatus shown in FIGS. 25, 27, 29, 31, 33, 35, 37, 39 and41.

In each drawing, the same reference number is allocated to thesubstantially same functional block. As the configuration and theoperation of the apparatuses in each drawing can be easily realized bythe description of the first to fourth embodiments, only relation witheach embodiment is described and the detailed description is omitted.

The devices shown in FIGS. 25 and 26 are configured by circuits forexecuting the expressions (1) and (2) in the first embodiment, and thedetermination of a shift (mv_shift) value is controlled by only input(selected in detecting a motion vector) from an external device. The MVpredictor 215 generates a predictive motion vector PMV utilizing amemory 101 storing the motion vector MV of each block. A subtracter 102calculates difference MV-PMV between these. A right shift processor 103shifts MV-PMV rightward. As a decoder executes processing reverse to theprocessing of an encoder, the memory 101 for storing a motion vector MV,a left shift processor 113 and an adder 112 are provided.

The devices shown in FIGS. 27 and 28 are configured by circuits forexecuting the expressions. (1) and (2) in the first embodiment and thedetermination of a shift (mv_shift) value is controlled by either ofinput (selected in detecting a motion vector) from an external device ora condition such as a type of a macroblock. A shift value selector 104selects an mv_shift value in case a specific block type is selected anda control circuit 105 instructs the right shift processor 103 to shiftby the mv_shift value corresponding to the block type.

The devices shown in FIGS. 29 and 30 are configured by circuits forexecuting the expressions (1) and (2) in the first embodiment and thedetermination of a shift (mv_shift) value is controlled by only acondition such as a macroblock type.

The devices shown in FIGS. 31 and 32 are configured by circuits forexecuting the expressions (3) and (5) in the second embodiment and thedetermination of a shift (mv_shift) value is controlled by only input(acquired in detecting a motion vector) from an external device. Anprocessor 106 for accuracy revision processes (PMV>>mv_shift)<<mv_shiftshown in the expression (3).

The devices shown in FIGS. 33 and 34 are configured by circuits forexecuting the expressions (3) and (5) in the second embodiment and thedetermination of a shift (mv_shift) value is controlled by either ofinput (acquired in detecting a motion vector) from an external device ora condition such as a macroblock type.

The devices shown in FIGS. 35 and 36 are configured by circuits forexecuting the expressions (3) and (5) in the second embodiment and thedetermination of a shift (mv_shift) value is controlled by only amacroblock type and others.

The devices shown in FIGS. 37 and 38 are configured by circuits forexecuting the expressions (4) and (6) in the second embodiment and thedetermination of a shift (mv_shift) value is controlled by only input(acquired in detecting a motion vector) from an external device.

The devices shown in FIGS. 39 and 40 are configured by circuits forexecuting the expression (4) and (6) in the second embodiment and thedetermination of a shift (mv_shift) value is controlled by either ofinput (selected in detecting a motion vector) from an external device ora condition such as a macroblock type.

The devices shown in FIGS. 41 and 42 are configured by circuits forexecuting the expressions (4) and (6) in the second embodiment and thedetermination of a shift (mv_shift) value is controlled by a conditionsuch as a macroblock type.

Fifth Embodiment

FIG. 18 is a flowchart showing a coding method equivalent to a fifthembodiment.

The fifth embodiment is related to coding/decoding methods for switchingthe accuracy of a coding motion vector to solve a problem that a memoryaccess region is expanded in motion compensation using a filter withlong taps.

The long taps filter is used for generating only a predictive pixel atthe fractional accuracy. Therefore, a memory access region can bereduced by limiting the coding accuracy of a motion vector to an integerpixel. However, prediction performance is degraded by limiting thecoding accuracy of a motion vector to an integer pixel. Then, in thefifth embodiment, pixel accuracy is limited according to an extent inwhich the expansion of a memory access region has an effect uponmounting devices or installing software. Particularly, only in caseblock size in motion compensation is small, the coding accuracy of amotion vector is limited.

The smaller block size is, the larger the effect of the expansion of thememory access region is. A small block in size has few pixels to beaccessed in case of integer pixel accuracy. Therefore, to compare alarge block in size and a small block in size, the smaller block sizeis, the larger the ratio of an expanded access region to the accessrange in the above case is.

In the coding method equivalent to this embodiment, in case the motioncompensation of ¼-pixel accuracy is applied to block division shown inFIG. 7, block size is first decoded (a process 801) as shown in FIG. 18and an mv_shift value is selected. In this embodiment, in the case of8×8 partition 2 (8×4) and 8×8 partition 3 (4×8), ½-pixel accuracy (aprocess 811) is selected, in the case of 8×8 partition 3 (4×4),integer-pixel accuracy (a process 812) is selected, in the case of ablock of 8×8 pixels or in larger size, ¼-pixel accuracy (a process 813shown in FIG. 18) is selected, the right shift processor 103 is drivenby the selected mv_shift and motion compensation is performed. In thecoding of a motion vector, mv_shift is set to 1 in a block in 8×4- and4×8-pixel size, mv_shift is set to 2 in a block in 4×4-pixel size, andmv_shift is set to 0 in a block in pixel size except them.

Besides, in a method using P-picture and B-picture, the above-mentionedswitching is applied to only B-picture and in the case of P-picture,motion compensation may be also performed at ¼-pixel accuracyindependent of block size. In this case, block size to which motioncompensation at integer-pixel accuracy is applied is only 4×4, however,the block size may be also expanded up to 8×4 and 4×8. In this case, ina block in 8×4-, 4×8- and 4×4-pixel size, mv_shift is set to 2 and in ablock in pixel size except it, mv_shift is set to 0.

The encoders and the decoders of a motion vector equivalent to thisembodiment in the moving picture coding/decoding apparatuses areconfigured as shown in FIGS. 41 and 42.

Sixth Embodiment

FIG. 19 is a flowchart showing a coding method equivalent to a sixthembodiment of the invention, and FIGS. 45 and 46 are a block diagramsshowing a main part of the coding apparatus and a block diagram showinga main part of the decoding apparatus. Also in this embodiment, to solvethe problem that a memory access region is expanded because of motioncompensation using a filter with long taps, a memory access range islimited by coding vertical and horizontal components of a motion vectorat different coding accuracy.

A shift selector 124 of the encoder discriminates whether a motionvector is a vertical component or not (the process 801) as shown in FIG.19 and selects mv_shift. A type adapter 124 executes the right shiftprocessor 103 at the selected mv_shift and performs motion compensation.In this embodiment, in motion compensation at ¼-pixel accuracy,integer-pixel accuracy (the process 812) is set to a vertical componentof a motion vector, ¼-pixel accuracy (the process 813) is set to ahorizontal component, mv_shift is set to 2 when the vertical componentis coded/decoded and mv_shift is set to 0 when the horizontal componentis coded/decoded.

The method of limiting the coding accuracy of a vertical component of amotion vector has large effect upon the expansion of a memory accessrange in this embodiment. Generally, picture data is stored in a memoryin the order of a raster scan from the left upside toward the rightdownside. Therefore, in case an access range is expanded from a certainpixel to the adjacent pixel, one pixel in a horizontal direction meansone pixel, however, one pixel in a vertical direction means one line.Therefore, a cost required for memory access in the vertical directionis larger than that in the horizontal direction. Further, in a method ofstoring pixel data of 1 byte/per 1 pixel not in units of byte (onepixel) but in units of word (every 2 pixels) and in units of dword(every four pixels), as the expansion of a memory access range in thehorizontal direction is caused in units of word or dword, that effect isnot large so much. In the meantime, in access by one pixel in thevertical direction, a memory access range is necessarily expanded.Therefore, the method of limiting the coding accuracy of a motion vectorin the vertical direction is effective from the viewpoint of thereduction of a memory access range.

The methods described in the fifth and sixth embodiments are synthesizedand a process shown in FIG. 23 can be also executed. That is, the shiftselector 124 limits the vertical component of a motion vector to that ofan integer pixel only in a block in 8×4-, 4×8- and 4×4-pixel size.Further, means for switching a vector component the range of which islimited according to block size is also effective.

As described above, the smaller block size is, the larger an effect bythe expansion of a memory access region is, however, this also holdstrue in the aspect ratio of a block. That is, in case the ratio in thelongitudinal and lateral size of a block is different, a smallercomponent in size is more greatly influenced by the expansion of anaccess range. To consider block partition shown in FIG. 7, it can besaid that it is effective to limit a component in 4-pixel size.

Seventh Embodiment

FIG. 24 is a flowchart showing a coding method equivalent to a seventhembodiment of the invention, FIGS. 43 and 44 are block diagrams showinga main part of the coding apparatus and a block diagram showing a mainpart of the decoding apparatus.

In this embodiment, a shift value selector 124 in the coding apparatusshown in FIG. 43 and the decoding apparatus shown in FIG. 44 selectsinteger-pixel accuracy (mv_shift=2) for a horizontal component andselects ¼-pixel accuracy (mv_shift=0) for a vertical componentrespectively when block size is 8×4(height×width), selects ¼-pixelaccuracy (mv_shift=0) for a horizontal component and selectsinteger-pixel accuracy (mv_shift=2) for a vertical componentrespectively when block size is 4×8(height×width), and selectsinteger-pixel accuracy (mv_shift=2) for horizontal and verticalcomponents when block size is 4×4(height×width) as shown in theflowchart shown in FIG. 24. From the viewpoint of predictiveperformance, the processing of horizontal and vertical components in 8×4and 4×8 modes may be also transposed. This reason is that ahigh-precision predictive method is effective for a smaller component insize. It is determined depending upon the necessity of the limitation ofmemory access, coding performance and application such as a bit ratewhich method is applied.

Eighth Embodiment

FIG. 20 is a flowchart showing a coding method equivalent to an eighthembodiment of the invention, FIGS. 47 and 48 are a block diagram showinga main part of the coding apparatus and a block diagram showing a mainpart of the decoding apparatus. This embodiment is related to the methodof limiting a vertical component of a motion vector to even number pixelaccuracy in case an interlace signal is input and a macroblock has framestructure in the seventh embodiment.

FIG. 17 shows a macroblock in case the interlace signal is coded/decodedin frame structure. A full line in FIG. 17 shows an odd field (a topfield) and a broken line shows an even field (a bottom field). As shownin FIG. 17, for a motion vector having an odd value, a predictive valueon the odd field is generated from an even field of a reference pictureand a predictive value on the even field is generated from an odd fieldof the reference picture. As displayed time is different between the oddfield and the even field in the interlace signal, a vertical componentvector having an odd value is actually not generated.

Then, in this embodiment, in case an interlace signal is input and amacroblock has frame structure, a vertical component of a motion vectoris limited to even number pixel accuracy. In the coding/decodingapparatuses, mv_shift when a vertical component is coded/decoded is setto 3 (processes 803, 814 shown in FIG. 20) and mv_shift when ahorizontal component is coded/decoded is set to 0 (the process 813 shownin FIG. 20). Also in the case of the frame structure of the interlacesignal, as shown in flowcharts in FIGS. 21 and 22, a vertical componentof a motion vector may be also limited to an integer pixel only in ablock in 8×4-, 4-8- and 4×4-pixel size (the process 801 shown in FIG.21) with a method in the eighth embodiment combined with the method inthe seventh embodiment. Further, for the coding method of the interlacesignal, there is an adaptive method of switching frame structure, fieldstructure, and frame structure and field structure for each macroblock,and a method of selecting the coding accuracy of a motion vector may bealso changed according to the method. For example, in a coding standarddealing an interlace signal and a progressive signal, a coding method offrame structure may be the same independent of a signal scan. In thiscase, a method that in the frame structure and the field structure, thecoding accuracy of a motion vector in the vertical direction in a blockin small size is limited to integer-pixel accuracy and coding/decodingis performed (the process 812 shown in FIGS. 20, 21 and 22), and in theadaptive method of switching the frame structure and the field structurefor each macroblock, the coding accuracy of a motion vector in thevertical direction in a block in small size is limited to even numberpixel accuracy in the frame structure (the process 814 shown in FIGS. 20and 21), is limited to integer-pixel accuracy in the field structure andcoding/decoding is performed (the process 812 shown in FIGS. 20 and 21)may be also adopted. At this time, the method may be also a method thatin the frame structure, the coding accuracy of a motion vector in thevertical direction is limited to even number pixel accuracy (the process814 shown in FIG. 22) independent of block size and in the fieldstructure, the coding accuracy of a motion vector in the verticaldirection in a block in small size is limited to integer-pixel accuracyand coding/decoding is performed (the processes 801 and 812 shown inFIG. 22).

In a method of reducing a memory access range in the seventh and eighthembodiments, no coding/decoding of an mv_shift value is required.Therefore, MVD Prediction 13 shown in FIGS. 1 and 2 and mv_shift inFIGS. 11 and 12 are not required. Besides, the process for transmittingthe mv_shift value from the motion compensator 211 to the multiplexer206 shown in FIG. 13 is not required. Further, the process fortransmitting the mv_shift value from the code decoder 501 to the MVpredictor 508 shown in FIG. 14 is not required. An mv_shift value isdetermined in the MV predictor 508 according to a predictive mode.

The method of reducing a memory access range in the eighth embodiment isequivalent to “limiting the coding accuracy of a motion vector to aninteger pixel according to block size” and “limiting the coding accuracyof a vertical component of a motion vector to an integer pixel or aneven pixel” using means for switching the accuracy of a coding motionvector and a predictive motion vector, and the accuracy of motioncompensation, prepared types of motion vector coding accuracy and blocksize in which the coding accuracy of a motion vector is switched are notlimited to the above-mentioned embodiment. In a motion compensationmethod in which a memory access range is reduced by limiting theaccuracy of a motion vector to ½-pixel accuracy, a method of limiting amotion vector to not integer-pixel accuracy but ½-pixel accuracy can bealso realized by the invention.

INDUSTRIAL AVAILABILITY

The invention is utilized in industrial fields requiring technology forcoding picture information into a digital signal including less codes indevices and systems for transmitting, storing and displaying a movingpicture.

1. A method of coding a moving picture, comprising: dividing a pictureinto a plurality of coding blocks; predicting a motion vector of acoding block from a motion vector of a block adjacent to the codingblock as a predictive motion vector; calculating a differential motionvector (MVD) based upon a motion vector (MV) to be coded and apredictive motion vector (PMV) of the motion vector to be coded perblock by subtracting the PMV from the MV to obtain a first value andapplying an arithmetic right bit shift to the first value according toan my shift value to obtain the MVD; selecting a type of accuracy of adifferential motion vector among a prepared plurality of types ofaccuracy of a differential motion vector for each coding block inconjunction with determining the my shift value for calculating the MVD,the plurality of types of accuracy including 1-pixel accuracy andsmaller fractional-pixel accuracies; and coding information of theselected type of accuracy and the differential motion vector calculatedwith the selected type of accuracy.
 2. A method of coding a movingpicture, comprising: dividing a picture into a plurality of codingblocks; predicting a motion vector of a coding block from a motionvector of a block adjacent to the coding block as a predictive motionvector; calculating a differential motion vector (MVD) based upon amotion vector (MV) to be coded and a predictive motion vector (PMV) ofthe motion vector to be coded per block by subtracting the PMV from theMV to obtain a first value and applying an arithmetic right bit shift tothe first value according to an my shift value to obtain the MVD;selecting a type of accuracy of a differential motion vector among aplurality of prepared types of accuracy of a differential motion vectorfor each coding block in conjunction with determining the my shift valuefor calculating the MVD, the plurality of prepared types of accuracyincluding 1-pixel accuracy, ½-pixel accuracy, ¼-pixel accuracy, and⅛-pixel accuracy; and coding information of the selected type ofaccuracy and the differential motion vector calculated with the selectedtype of accuracy.